package com.jzo2o.health.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.health.model.domain.ReservationSetting;
import com.jzo2o.health.model.dto.request.ReservationSettingUpsertReqDTO;
import com.jzo2o.health.model.dto.response.ReservationDateResDTO;
import com.jzo2o.health.model.dto.response.ReservationSettingResDTO;
import com.jzo2o.health.model.excel.ReservationImportData;

import java.time.LocalDate;
import java.time.YearMonth;
import java.util.List;

/**
 * <p>
 * 预约设置 服务类
 * </p>
 * @author JIAN
 */
public interface IReservationSettingService extends IService<ReservationSetting> {
    /**
     * 获取指定月份的所有预约数据
     */
    List<ReservationSettingResDTO> getReservationSettingByMonth(YearMonth yearMonth);

    /**
     * 更新/插入指定日期的预约数据
     */
    void editNumberByDate(ReservationSettingUpsertReqDTO reservationSettingUpsertReqDTO);

    /**
     * 批量更新/插入指定日期的预约数据
     */
    void editNumberByDateBatch(List<ReservationImportData> reservationDataList);

    /**
     * 获取当前月份可用预约日期
     */
    ReservationDateResDTO getReservationDateByMonth(YearMonth yearMonth);

    /**
     * 增加已预约人数数量
     * @param time
     * @param count 数量
     */
    void plusReservationCount(LocalDate time, Integer count);
}